import BaseObject from "../base/baseObject.js";
import CommonUtil from "../../移动商城改/utils/commonUtil.js";

/**
 * @description 商品基础管理器
 * @extends{BaseObject} 基础对象模型
 * @class {BaseManage}
 * @author hhx
 * @date 2024-11-26 10:11
 * @version 0.1.2
 */
export default class BaseManager extends BaseObject {


    /**
     * @description 数据存储
     * @private
     * @type {Array} 
     */
    _items = null
    
    /**
     * @description 基础管理器构造函数
     * @public
     * @constructor
     * @param props {object} 配置对象
     */
    constructor(props = {}) {
        super(props);
    }



    //=========================== 内部成员 ===============================

    /**
     * @description 获取 存储列表
     * @property
     * @protected
     * @return {Array} 存储列表
     */
     get items(){
        return this._items;
     }


    /**
     * @description 设置 存储列表
     * @property
     * @protected
     * @param items {Array} 存储列表
     */
     set items(items) {
         this._items = items;
     }

    //=========================== 成员方法 ===============================

    //=========================== 基础属性 ===============================

    //=========================== 属性方法 ===============================

    //=========================== 接口方法 ===============================

    /**
     * @description 添加商品
     * @abstract
     * @param target {object} 触发事件对象
     * @param product {object} 商品
     */
    addItem(target, product) {
        //
    }

    /**
     * @description 修改商品
     * @abstract
     * @param id {number} 商品id
     */
    removeItem(id) {
        //
    }

    /**
     * @description 删除商品
     * @abstract
     * @param product {object} 商品
     */
    updateItem(product) {
        //
    }

    /**
     * @description 查找商品
     * @abstract
     * @param id {number} 商品id
     */
    findItemBy(id) {
        //
    }


    findByKey(key) {

        for (let i = 0; i < this.items; i++) {

            if(CommonUtil.isString(this.items[i])){
                return this.items[i]===key;
            }

            if(CommonUtil.isNumber(this.items[i])){
                return this.items[i]===key;
            }

            if(CommonUtil.isArray(this.items[i])){

               return this.findByKey(this.items[i]);
            }
        }
    }

    findByValue(key, value) {

    }
    //========================== 构建方法 ==========================

    /**
     * @description 初始化方法
     * @protected
     * @override
     */
    init(props) {

        super.init(props);

        //初始化属性
        this.initProperty();
    }

    initProperty(){
        this.productList = [];
    }

}


    //=========================== 创建方法 ===============================

    //=========================== 构建方法 ===============================

    //=========================== 重载方法 ===============================

    //=========================== 内部方法 ===============================

    //=========================== 控制方法 ===============================
    
    
    let Manager = new BaseManager([5,'6',7]);

console.log(Manager.findByKey(6))

    
    
 



